home *** CD-ROM | disk | FTP | other *** search
/ Just Call Me Internet / Just Call Me Internet.iso / prog / atari / c / stut_src / gemwdef.h < prev    next >
C/C++ Source or Header  |  1996-06-04  |  7KB  |  246 lines

  1. /* 
  2.  * Gem_Windows_Defs.h
  3.  *
  4.  * Definitions proprietaires pour la gestion des fenetres GEM
  5.  * Structures gerant les fenetres AES ainsi que leur contenu.
  6.  *
  7.  * Notes:
  8.  * ------
  9.  * Diagramme de dépendances:
  10.  *                
  11.  * dfstruct.h  dfstruct.h  dfstruct.h
  12.  *     |          |           |
  13.  *     |      DATAGROUP       |
  14.  *     |       DATADIR        |
  15.  *  TEXTLINE   DATAPAGE   TEXT_DRAWPAR
  16.  *     |        |   |         |
  17.  *   {WORK_CONTENT}  \    {WORK_DRAW}   MENU_OPTIONS   WINFLAGS         
  18.  *               \    \___    |    ___/__________________/
  19.  *                 \_____ \   |   /
  20.  *                                     WIPARAMS     
  21.  *
  22.  *
  23.  * History:
  24.  * --------
  25.  * Created by fplanque
  26.  */
  27.  
  28. /*
  29.  * V‚rifie si les pr‚sentes d‚finitions ont d‚ja ‚t‚ faites:
  30.  */
  31. #ifndef _GEMWDEF_H_ 
  32. #define _GEMWDEF_H_
  33.  
  34. /*
  35.  * Headers:
  36.  */   
  37.  
  38.  #include <vdi.h>
  39.                             
  40.  #include "DFSTRUCT.H"            /* Structures de données affichées */
  41.                                                         /* dans les fenetres */                              
  42.     
  43. /*
  44.  * Window definitions: 
  45.  */
  46. #define    COMPLETE            NAME|CLOSER|FULLER|MOVER|INFO|SIZER|UPARROW|DNARROW|VSLIDE|LFARROW|RTARROW|HSLIDE
  47.                                  /* Fenêtre avec tous les elements */
  48. #define    OUTLINE_INWIN    2;            /* Taille d'un cadre OUTLINE lorsque */
  49.                                             /* le formulaire en question est dans */
  50.                                             /* une fenêtre (Range: 0-3) */
  51.  
  52. /*
  53.  * Internal window-class definitions:
  54.  */
  55. enum
  56.     {
  57.         CLASS_EMPTY,        /* Vide */
  58.         CLASS_DESK,            /* Le bureau */
  59.         CLASS_DIR,            /* Un directory tout simple */
  60.         CLASS_TEXT,            /* Un texte */
  61.         CLASS_DATAPAGE,    /* Une page de donn‚es, plus de pr‚cisions dans le TYPE */
  62.         CLASS_TREE            /* Arbre d'objets */
  63.     };        
  64.  
  65.  
  66. /* 
  67.  * Internal window-type definitions:
  68.  */
  69. enum
  70.     {
  71.         TYP_DESK,        /* Le bureau! */
  72.         TYP_EMPTY,        /* Rien (Fenˆtre vide) */
  73.         TYP_ARBO,        /* Configuration d'une page arbo */
  74.         TYP_DIR,            /* Directory */
  75.         TYP_TEXT,        /* Texte */
  76.         TYP_DEBUG,        /* Texte de debugging */
  77.         TYP_TRACK,        /* Tracking du serveur */
  78.         TYP_ERRORS,        /* Erreurs du compilateur */
  79.         TYP_PI3,            /* Image Degas PI3 */
  80.         TYP_TREE            /* Arbre d'objets */
  81.     };           
  82.              
  83.              
  84. /*
  85.  * WORK_CONTENT: Ptr sur les données affichées dans une fenetre   
  86.  *
  87.  * Suggest:
  88.  * --------
  89.  * N'y-a-t'il pas double emploi avec les pointeurs directs dans
  90.  * la structure WIPARAMS
  91.  */
  92. typedef
  93.     union
  94.     {
  95.         TEXTINFO        *textInfo;            /* Texte */
  96.         DATAGROUP    *datagroup;            /* Bloc de donn‚es */
  97.         DATADIR        *datadir;            /* Repr‚sentation d'un bloc de donn‚es */
  98.         DATAPAGE        *datapage;            /* Page de donn‚es */
  99.         void            *x;                    /* Chose inconnue... */
  100.     }
  101.     WORK_CONTENT;
  102.  
  103.                                                              
  104.          
  105.  
  106. /*
  107.  * WORK_DRAW: Ptr vers infos permettant d'afficher le contenu de la fenetre
  108.  *
  109.  * Purpose:
  110.  * --------  
  111.  * Cette union donne un pointeur vers une structure contenant les
  112.  * informations nécessaires à l'affichage des données contenues dans
  113.  * la fenetre.
  114.  */
  115. typedef
  116.     union
  117.     {
  118.         MFDB                *    psrcMFDB;        /* block source */
  119.         OBJECT            *    tree;                /* Arbre d'objets */
  120.         TEXT_DRAWPAR    *    pTextDrawPar;    /* Infos sur un texte */
  121.         void                *    x;                    /* Chose inconnue... */
  122.     }
  123.     WORK_DRAW;
  124.  
  125.  
  126. /*
  127.  * MENU_OPTIONS: Options du menu a valider selon le contenu de la fenetre
  128.  */
  129. typedef
  130.     struct
  131.     {
  132.         BOOL        save            :1;            /* Peut on sauver le contenu? */
  133.         BOOL        saveas        :1;            /* Peut on sauver le contenu? */
  134.         BOOL        savedisk        :1;            /* Peut on sauver le contenu? */
  135.         BOOL        newlink        :1;            /* Nouveau lien */
  136.         BOOL        newpage        :1;            /* Nouvelle page */
  137.         BOOL        newrub        :1;            /* Nouvelle rubrique */
  138.         BOOL        newtext        :1;            /* Nouveau texte */
  139.         BOOL        compile        :1;            /* On peut compiler */
  140.         UINT        affichage    :2;            /* Params d'affichage */
  141.     }
  142.     MENU_OPTIONS;
  143.  
  144.  
  145. /*
  146.  * Flags s'appliquant … une fenˆtre:
  147.  */
  148. typedef
  149.     struct
  150.     {
  151.         int    b_modified    :    1;        /* Le contenu de la fenˆtre a ‚t‚ modifi‚ */    
  152.     } 
  153.     WINFLAGS;
  154.  
  155.  
  156. enum { PARAFF_NONE, PARAFF_TEXT };
  157.  
  158.          
  159. /*
  160.  * WIPARAMS: ParamŠtres concernant une fenˆtre (ouverte ou fermee)
  161.  * 
  162.  * Purpose:
  163.  * --------
  164.  * Chaque element de la liste chain‚e fournit des infos sur
  165.  * une fenetre:                
  166.  *        - Handles, Titre, etc...
  167.  *        - Contenu
  168.  *        - M‚thode d'affichage du contenu
  169.  *        - Dimension totale & partie visible
  170.  *        - Objet s‚lectionn‚
  171.  *        - Options de menu valides pour ce contenu.
  172.  */                                                          
  173. typedef
  174.     struct    wi_params
  175.     {
  176.         /*
  177.          * Fenˆtre suivante: 
  178.          */
  179.         struct wi_params    *    next;        /* Prochaine fenˆtre */
  180.  
  181.         /*
  182.          * Contenu de la fenˆtre: 
  183.          */
  184.         int                class;                /* Classe des donn‚es contenues ds la fenˆtre */
  185.         DATAGROUP    *    datagroup;            /* Datagroup concern‚ */
  186.         DATADIR        *    datadir;                /* Dossier concern‚ */
  187.         DATAPAGE        *    datapage;            /* Page concern‚e */
  188.         WORK_CONTENT    content_ptr;        /* Pointeur sur le contenu! */
  189.  
  190.         /*
  191.          * Informations sur l'affichage: 
  192.          * En g‚n‚ral, c'est difficile … mettre en place! 
  193.          */
  194.         int                type;                    /* Type des donn‚es contenues ds la fenŠtre*/
  195.         WORK_DRAW        draw_ptr;            /* Pointeur sur les infos pour le dessin */
  196.             
  197.         /*
  198.          * Informations sur la fen en g‚n‚ral:
  199.          */
  200.         int                handle;                /* Handle de la fenˆtre concern‚e */
  201.         char            *    name_adr;            /* Titre de la fenˆtre */
  202.         char            *    info_adr;            /* Lignes d'infos */
  203.         int                wi_ckind;            /* El‚m‚nts actifs de la fenˆtre */
  204.         int                fulled;                /* 1: Plein ‚cran  0: normal */    
  205.         int                curr_x, curr_y;    /* Coord avant fermeture */
  206.         int                curr_w, curr_h;    /* Taille avant fermeture */
  207.         int                maxsize_w, maxsize_h;    /* Taille maximale, bordure comprise */
  208.         int                h_step, v_step;    /* Taille des sauts lorsqu'on clique sur les flˆches */
  209.         int                more;                    /* Info suppl‚mentaire */
  210.         
  211.         /*
  212.          * Infos sur la taille du contenu et la portion visible: 
  213.          */
  214.         unsigned int    work_x;                /* Position X de la zone de travail */
  215.         unsigned int    work_y;                /* Position Y de la zone de travail */
  216.         unsigned    long    seen_x;                /* Coordonn‚es (offset) de la fen */
  217.         unsigned    long    seen_y;                /* ouverte sur le document */
  218.         unsigned int    seen_w;                /* Largeur visible */
  219.         unsigned int    seen_h;                /* Hauteur visible */
  220.         unsigned    long    total_w;                /* largeur totale */
  221.         unsigned long    total_h;                /* hauteur totale */
  222.     
  223.         /*
  224.          * S‚lection dans la fenˆtre= 
  225.          */
  226.         int                selected_icon;        /* No Objet selectionne */
  227.  
  228.         /*
  229.          * Validation des options du menu 
  230.          */
  231.         MENU_OPTIONS    menu_options;
  232.  
  233.         /*
  234.          * Divers
  235.          * ex: le contenu a t'il ‚t‚ modifi‚:
  236.          */    
  237.         WINFLAGS            WinFlags;
  238.     } 
  239.     WIPARAMS;
  240.               
  241.               
  242. /*
  243.  * Fin du test anti red‚finition:
  244.  */
  245. #endif
  246.